package com.itany.corejava.code07_面向对象.抽象类;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月06日 14:57
 */
public class Test02_练习 {
    public static void main(String[] args) {
        Plant plant=new Flower("月季","花","白色");
        Plant plant2=new Grass("小草","草","土里");
        plant.showMyself();
        plant2.showMyself();

    }
}

// 定义一个植物类Plant
// 植物类里面有name、kind、有参构造
// 有一个抽象方法:showMyself

// 定义一个花类Flower
// 有color属性、get、set方法
// 重写showMyself方法
// 我是XX，属于XX类，我的颜色是XX
// 定义一个花类Grass
// 有loc属性、get、set方法
// 重写showMyself方法
// 我是XX，属于XX类，我适合生长在XX
abstract class Plant{
    private String name;
    private String kind;

    public Plant(String name, String kind) {
        this.name = name;
        this.kind = kind;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKind() {
        return kind;
    }

    public void setKind(String kind) {
        this.kind = kind;
    }

    //抽象方法
    public abstract void showMyself();
}

class Flower extends Plant{
    private String color;

    public Flower(String name, String kind, String color) {
        super(name, kind);
        this.color = color;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public void showMyself() {
        System.out.println("我是"+super.getName()+",种类是"+super.getKind()+",颜色是"+color);
    }
}
class Grass extends Plant{
    private String loc;

    public Grass(String name, String kind, String loc) {
        super(name, kind);
        this.loc = loc;
    }

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

    @Override
    public void showMyself() {
        System.out.println("我是"+super.getName()+",种类是"+super.getKind()+",适合生长在"+loc);
    }
}